# 条件控制

# 条件控制语句的基本语法：
# if 条件表达式1:
#     语句块1
# elif 条件表达式2:
#     语句块2
# elif 条件表达式3:
#     语句块3
# ...
# else:
#     语句块n

# 条件表达式：
# 条件表达式可以是任何表达式，其结果必须是布尔值（True或False）。

# 语句块：
# 语句块是指一组语句，其中的语句会根据条件表达式的结果来执行或不执行。

# 条件控制语句的执行流程：
# 1. 首先，Python会计算条件表达式1，如果其结果为True，则执行语句块1，并跳过后续的elif和else语句；
# 2. 如果条件表达式1的结果为False，则Python会计算条件表达式2，如果其结果为True，则执行语句块2，并跳过后续的elif和else语句；
# 3. 如果条件表达式2的结果为False，则Python会计算条件表达式3，如果其结果为True，则执行语句块3，并跳过后续的elif和else语句；
# 4. 以此类推，如果所有的条件表达式都为False，则执行else语句块。

# 注意：
# 1. 条件控制语句至少要有一个条件表达式，即使只有一个条件表达式，也要加上冒号和语句块。
# 2. 条件控制语句可以有多个elif子句，每个elif子句都跟一个条件表达式和语句块。
# 3. 条件控制语句可以没有else子句，即使没有else子句，也要加上冒号和语句块。
# 4. 条件控制语句的执行顺序是从上到下，如果某个条件表达式的结果为True，则执行该条件表达式对应的语句块，并跳过后续的elif和else语句。

# 实例1：
# 计算两个数的最大值
a = 10
b = 20
if a > b:
    max = a
else:
    max = b
print("最大值为：", max)

# 实例2：
# 计算两个数的平均值
a = 10
b = 20
if a > b:
    avg = (a + b) / 2
else:
    avg = (b + a) / 2
print("平均值为：", avg)

# 实例3：
score = 85
if score >= 90:
    grade = "A"
elif score >= 80:
    grade = "B"
elif score >= 70:
    grade = "C"
elif score >= 60:
    grade = "D"
else:
    grade = "E"
print("成绩等级为：", grade)

# match...case语句：
# match...case语句是Python 3.10引入的新语法，可以用来代替if...elif...else语句。
# 语法格式如下：
# match 表达式:
#     case 值1:
#         语句块1
#     case 值2:
#         语句块2
#     case 值3:
#         语句块3
#     ...
#     case 值n:
#         语句块n
#     case _:
#         语句块n+1
# 注意：
# 1. match表达式可以是任何表达式，其结果可以是任何类型。
# 2. case子句的值可以是任意表达式，但必须是唯一的。
# 3. 值可以是任意类型，但必须是唯一的。
# 4. 值可以是值列表，也可以是值范围。
# 5. 值列表语法：
#     case [值1, 值2, 值3, ...]:
#         语句块
# 6. 值范围语法：
#     case 值1..值2:
#         语句块
# 7. 值_表示其他所有情况。
# 8. 语句块可以是单个语句，也可以是多条语句。
# 9. match...case语句的执行流程：
#     首先，Python会计算match表达式的值，然后与case子句的每个值进行比较，如果匹配成功，则执行对应的语句块，并跳过后续的case子句；
#     如果所有case子句都不匹配，则执行最后一个case子句的语句块。

# 实例4：
# 计算两个数的最大值
httpStatus = 200
match httpStatus:
    case 200:
        print("请求成功")
    case 404:
        print("请求失败，未找到页面")
    case 500:
        print("服务器内部错误")
    case _:
        print("未知错误")

